A conventional personal computer comprises a processor whose actions are controlled and coordinated by means of programs stored in main memory. For example, such programs may consist of operating system programs and application programs. The main memory is typically "volatile" and requires external electrical power to maintain its storage capability so that the programs in the main memory are erased whenever the electrical power is turned off or the computer is "powered down".
The computer is generally provided with additional non-volatile mass storage, typically in the form of magnetic media such as a "hard" or "floppy" disks on which relatively permanent copies of the programs can be stored. When the computer is initially turned-on or "powered up", some process or method must be used to load the programs from the non-volatile mass storage into the volatile main memory. In addition, the programs must often be specifically configured to work with the hardware which comprises the computer in order to place the computer in an operational state where it accepts user commands. Alternatively, even when power is continuously applied, the computer may reach a state where it no longer responds to user commands due to hardware or software malfunctions. In this case, the computer can be reset into a known state, generally without turning the electrical power off.
The phrase commonly used to denote the process of placing a personal computer into an operational state from either an unpowered state or a powered, but unresponsive state, is "bootstrapping" the computer or simply "booting" the computer. Booting a personal computer from an unpowered state is normally termed a "cold" boot and is initiated simply by applying power to the computer. Alternatively, it is possible to boot a computer from a powered state in a process called a "warm" boot. A warm boot is usually initiated by pressing a key combination or by actuating a special switch.
A boot process is a sequence of steps which are performed during the booting procedure. There are usually a number of discrete steps which are preprogrammed into a set of basic operating instructions called basic input-output system instructions or BIOS instructions. The BIOS instructions are conventionally stored in a battery-backed RAM memory called a non-volatile RAM or NVRAM so that they remain permanently in memory even when the computer electrical power is turned off.
The boot process for a cold boot usually starts by initiating a Power On Self Test (POST) routine that checks the integrity of basic hardware components, such as the main memory, the keyboard and the mass storage devices. If an error is detected in the hardware, then the boot process is stopped. Alternatively, if the POST routine indicates that the hardware is operating properly, then the boot process interrogates the system hardware device configuration and compares the detected configuration against a hardware specification entered by the computer user and stored in the NVRAM. Such a hardware configuration typically includes the number and types of mass storage devices, the amount of main memory, the type of keyboard and the availability of other devices such as co-processors etc.
If the detected hardware configuration does not match the hardware specification, then the boot process may be halted or a warning may be given to the user that the configuration and specification do not match and the boot process continued. However, if the boot process determines that the hardware is operating properly and the detected hardware configuration matches the stored hardware specification, then the boot process proceeds to load the operating system software from one of the mass storage devices and then to configure the operating system software by loading various hardware-specific software programs called "device drivers" and other basic software programs, such as memory management programs, from the mass storage devices into the computer main memory.
The installation order, type and storage location of the various operating system configuration programs are usually determined by one or more "login" files containing a list of selected operating system drivers and definitions. Finally, a set of predetermined system programs in one of the login files are run to complete the configuration of the operating system. To enable easy customization by the user, the login files for a personal computer are usually stored on one of the mass storage devices, such as the hard disk. The files to which the login files refer are also stored on one of the mass storage devices.
For example, on personal computers that use the MS-DOS.RTM. operating system developed and sold by Microsoft Corporation, Redmond, Wash., the operating system definitions and the system commands are kept in two login files that work in tandem. System definitions are normally placed in a disk file which is named CONFIG.SYS and system commands are placed in disk batch file named AUTOEXEC.BAT. During the booting process, the computer will first load the device drivers and the system definitions specified in the CONFIG.SYS file and then run the programs in the AUTOEXEC.BAT file. Once execution of the system commands in the AUTOEXEC.BAT file have been completed the system is ready for operation.
Normally the boot process proceeds to completion automatically without intervention of the user. However, the boot process of the operating system can fail and stop before completion for a number of reasons. For example, since the login files are easily accessible to the user, erroneous entries can be placed in the login files or the files can become damaged and unreadable. Alternatively, even if the login files are undamaged, they generally refer to other programs, files or system objects that are stored on the mass storage devices and these latter files can be missing or damaged and the boot process can fail. Finally, hardware devices checked or referenced during the boot process can fail and stop the process.
If the boot process fails, the computer does not become operational and will not respond to user commands. Consequently, the boot process must be reinitiated, but, unless the problem which caused the failure is corrected the reinitiated boot process will also fail. For example, in order to correct a failed boot process, the login configuration files can be edited to refer to the correct driver files or to bypass failed hardware or software programs. Unfortunately, the user must generally have an operational computer system in order to run an editing program and repair the damage.
Consequently, it is standard practice to make a copy of the login files, which copy is stored on removable storage media, such as a floppy disk. If a problem is encountered during a boot process initiated using the normal login files stored on the hard disk, the removable floppy disk can be inserted into an appropriate drive and the system booted using the login files stored on the floppy disk. However, the user has not made a copy of the login files prior to the boot process failure or, if the system does not have mass storage devices with removable media (some systems are configured with only a CD-ROM drive and a hard disk), the user is left relatively helpless without an operational system to correct the problem.
Accordingly, it is an object of the present invention to recover from a failure during a boot process.
It is another object of the present invention to recover from a failure during a boot process without user intervention.
It is a further object of the present invention to automatically change the login files during a failure in the boot process.
It is yet another object of the present invention to configure the system in a minimal configuration if a boot process failure occurs.